﻿Imports VN.INS.BL.BC
Imports System.Data
Imports System.Web
Imports System.IO

Partial Class Devida_MantenimientoUnidad
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If (Not (Page.IsPostBack)) Then            
            CargarUnidad("")
        End If
    End Sub

    'arga grilla unidad
    Public Sub CargarUnidad(ByVal strNombre As String)
        Dim objCUBC As MantenimientoUnidadBC = New MantenimientoUnidadBC
        Dim dtCU As DataTable
        dtCU = objCUBC.ListaUnidad(strNombre)
        gv_unidad.DataSource = dtCU
        gv_unidad.DataBind()
    End Sub

    Protected Sub gv_unidad_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv_unidad.RowDataBound
        ' FORMATEA ROWS
        If e.Row.RowType = DataControlRowType.DataRow Then
            ' ASIGNA EVENTOS
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gv_unidad, "Select$" + e.Row.RowIndex.ToString)
        End If
    End Sub

    Protected Sub gv_unidad_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gv_unidad.SelectedIndexChanged
        'captura valores de unidad seleccionado
        chkb.Checked = False
        txtunidad.Text = Server.HtmlDecode(gv_unidad.SelectedRow.Cells(1).Text)
        Dim hfUNIDAD As HiddenField = CType(gv_unidad.SelectedRow.FindControl("hfUNIDAD"), HiddenField)
        ViewState("VSunid") = hfUNIDAD.Value.ToString
    End Sub

    Protected Sub chkb_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkb.CheckedChanged
        'si se marca nuevo se habilita el textbox
        If chkb.Checked = True Then
            habilitar()
            gv_unidad.SelectedIndex = -1
        End If
        LIMPIAR()
    End Sub

    Public Sub LIMPIAR()
        txtunidad.Text = ""
    End Sub

    Public Sub habilitar()
        txtunidad.Enabled = True
    End Sub

    Protected Sub btn_guardar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btn_guardar.Click
        Dim A As String
        A = "Editable"
        If chkb.Checked = True Then
            A = "Insertar"
        End If
        If A = "Insertar" Then  'Insertar
            'Insertamos la unidad
            If txtunidad.Text = "" Then
                alerta.Mostrar_Alerta("Error", "Digitar un Nombre de Unidad")
                LIMPIAR()
                Exit Sub
            Else
                Dim objgen As GeneralBC
                Dim codU As String
                objgen = New GeneralBC
                'generamos codigo de unidad
                codU = objgen.GenerarCodigo("UNIDAD", "UNIDAD", "UNI-")
                insertarunidad(codU, UCase(txtunidad.Text))
                alerta.Mostrar_Alerta("Aviso", "Registro Guardado ")
            End If
        Else                    'Editar
            'Editamos unidad seleccionada
            If gv_unidad.SelectedIndex = -1 Then
                alerta.Mostrar_Alerta("Error", "Debe seleccionar un Registro o elegir la opcion  Nuevo")
                Exit Sub
            End If
            editarunidad(ViewState("VSunid"), UCase(txtunidad.Text))
            alerta.Mostrar_Alerta("Aviso", "Registro Guardado ")
        End If
        'volvemos a cargar grilla
        CargarUnidad("")
        chkb.Checked = False
        LIMPIAR()
    End Sub

    'Insercion de unidad
    Public Sub insertarunidad(ByVal unid As String, ByVal descr As String)
        Dim objIUBC As MantenimientoUnidadBC
        Try
            objIUBC = New MantenimientoUnidadBC
            objIUBC.insertarunidad(unid, descr)
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

    'Edicion de unidad
    Public Sub editarunidad(ByVal unid As String, ByVal descr As String)
        Dim objEUBC As MantenimientoUnidadBC
        Try
            objEUBC = New MantenimientoUnidadBC
            objEUBC.editarunidad(unid, descr)
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

    'Eliminacion de unidad
    Public Sub eliminarunidad(ByVal unid As String)
        Dim objELUBC As MantenimientoUnidadBC
        Try
            objELUBC = New MantenimientoUnidadBC
            objELUBC.eliminarunidad(unid)
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

    Protected Sub boton_busca_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles boton_busca.Click
        'filtrado de unidad
        CargarUnidad(txtunidad.Text.ToString)
    End Sub

    Protected Sub btn_eliminar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btn_eliminar.Click
        Dim objCUBC As MantenimientoUnidadBC
        Dim objDt As DataTable
        objCUBC = New MantenimientoUnidadBC
        'verificamos si la unidad está siendo usada
        objDt = objCUBC.Contarunidad(ViewState("VSunid"))
        Dim UTILISADO As String
        UTILISADO = objDt.Rows(0).Item("NUMERO")
        'se elimina la unidad seleccionada, si no está siendo usada 
        If gv_unidad.SelectedIndex = -1 Then
            alerta.Mostrar_Alerta("Error", "Debe seleccionar un Registro")
            Exit Sub
        Else
            If UTILISADO = 0 Then
                eliminarunidad(ViewState("VSunid"))
                alerta.Mostrar_Alerta("Aviso", " Registro Eliminado")
            Else
                alerta.Mostrar_Alerta("Aviso", "Este Registro esta siendo usado y no se puede Eliminar")
            End If
        End If
        CargarUnidad("")
        LIMPIAR()
    End Sub

    Protected Sub btnsalir_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnsalir.Click
        'redireccionamos a inicio
        Response.Redirect("Inicio.aspx")
    End Sub

End Class
